Users of FOG Custom Pings have no way to know if child-process data will be present
Categories
(Toolkit :: Telemetry, task, P3)
Tracking
()
People
(Reporter: chutten, Unassigned)
References
(Blocks 1 open bug)
Details
(Whiteboard: [telemetry:fog:m?])
If my custom ping wants to contain data collected in a non-main process, how can I know when's the right time to submit my ping so that it contains this data?
We have test-only APIs for checking if data is present.
We have test-only APIs for synchronously flushing all child data to the parent.
But outside of tests... how can I make sure the data's there before calling Submit(aReason)
?
I can think of some options, but I'm not sold on any of them:
a) Allow Custom Pings to be submitted in non-main processes, flushing IPC at that time?
* Will complicate IPC somewhat
* What coordinates the flushing across all processes of that type?
b) Flush IPC each time a custom ping is submitted
* Could be a perf problem
* Even custom pings with only-main-process data will bear this perf cost
b-i) Expand FOG's understanding of which pings have non-main-process data in them to only opt relevant pings into b
* Could be a FOG-specific pings.yaml
param should_flush_ipc_before_submit: true
* (which might be easy to miss)
c) Provide a non-test FOG IPC synchronization mechanism
* It'll be easy to forget to call this before calling Submit(aReason)
* Even if it takes the shape of a FlushIPCAndSubmit()
or optional param FOG-specific addition to the ping metric type's API, it might be missed.
Description
•